import os
import sys
import pytest
import time

def run_tests():
    """
    运行测试并生成报告
    """
    # 创建报告目录
    report_dir = os.path.join(os.path.dirname(__file__), 'reports')
    allure_results_dir = os.path.join(report_dir, 'allure_results')
    os.makedirs(report_dir, exist_ok=True)
    os.makedirs(allure_results_dir, exist_ok=True)
    
    # 报告文件名
    timestamp = time.strftime("%Y%m%d_%H%M%S")
    html_report = os.path.join(report_dir, f'report_{timestamp}.html')
    xml_report = os.path.join(report_dir, f'report_{timestamp}.xml')
    
    # 运行测试
    args = [
        '-v',  # 详细输出
        '--html=' + html_report,  # HTML报告
        '--junitxml=' + xml_report,  # XML报告
        f'--alluredir={allure_results_dir}',  # Allure结果目录
        'test_cases'  # 测试用例目录
    ]
    
    exit_code = pytest.main(args)
    
    # 生成Allure报告（可选，需要安装allure命令行工具）
    print(f"\nAllure结果保存在: {allure_results_dir}")
    print("可以使用以下命令生成Allure报告:")
    print(f"allure serve {allure_results_dir}")
    
    return exit_code

if __name__ == '__main__':
    sys.exit(run_tests())